package me.zk;

import java.util.Arrays;

/**
 * 冒泡排序（二）
 *
 *
 * @Author: zhang kai
 * @Date: 2022/06/27
 * @Description:
 */
public class BubbleSortDemo2 {

    public static void main(String[] args) {
        int[] array = {5,8,6,6,3,9,2,1,7};
        sort(array);
        System.out.println(Arrays.toString(array));
    }


    public static void sort(int[] array) {
        //控制循环次数
        for (int i = 0; i < array.length - 1 ; i++) {
            //判断内层遍历是否有交换，如果无交换那么说明已经有序
            boolean isSorted = true;
            //每次遍历后都会确认一次最小或者最大数字，所以可以减少i次循环
            for (int j = 0; j < array.length - i - 1; j++) {
                if (array[j] > array[j+1]) {
                    int tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                    isSorted = false;
                }
            }
            if(isSorted) {
                break;
            }
        }
    }
}
